import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
  // store里面配置一些vuex需要使用的插件
  plugins: [
    createPersistedState(
      // 有三个参数经常使用key:指定持久化名字，默认位vuex，storage：默认是localstorage，reducer指定需要缓存的属性，是一个函数，参数是state
      {
        key: 'HEIMA_TOUTIAO',
        reducer({ tokenObj, myChannels, historys }) {
          return { tokenObj, myChannels, historys }
        }
      }
    )
  ],
  state: {
    // 声明一个变量保存token
    tokenObj: {},
    myChannels: [],
    historys: []
  },
  getters: {
    isLogin(state) {
      // 双重取反转化为布尔值
      return !!state.tokenObj.token
    }
  },
  mutations: {
    // 函数名全部大写
    SET_TOKEN(state, tokenObj) {
      // 保存后端返回的数据token
      state.tokenObj = tokenObj
    },
    SET_MY_CHANNELS(state, channels) {
      state.myChannels = channels
    },
    // historys : 新的搜索历史的数组
    SET_HISTORYS(state, historys) {
      state.historys = historys
    }
  },
  actions: {},
  modules: {}
})
